#ifndef GAMESTATE_H_
#define GAMESTATE_H_

#include "sdl.h"

namespace catan
{

class GameState
{
public:
	GameState();
	virtual ~GameState();
	void end();
	bool isRunning();
	bool getIsFrameDrawn();
	void toggleFrame();
	bool getIsMaskDrawn();
	void toggleMask();
	bool getAreHexagonsDrawn();
	void toggleHexagons();
	bool getIsBackgroundDrawn();
	void toggleBackground();
	void setIsPlacingSettlement(bool isPlacingSettlement);
	bool getIsPlacingSettlement();
	void setIsPreStartGame(bool isPreStartGame);
	bool getIsPreStartGame();
	SDL_Event *pollKeyDownEvent();
	void queueKeyDownEvent(SDL_Event &event);
	SDL_Event *pollMouseButtonDownEvent();
	void queueMouseButtonDownEvent(SDL_Event &event);
	SDL_Event *pollMouseMotionEvent();
	void queueMouseMotionEvent(SDL_Event &event);
	
private:
	bool _isRunning;
	bool isFrameDrawn;
	bool isMaskDrawn;
	bool areHexagonsDrawn;
	bool isBackgroundDrawn;
	bool isPreStartGame;
	bool isPlacingSettlement;
	SDL_Event *keyDownEventRef;
	SDL_Event *mouseButtonDownEventRef;
	SDL_Event *mouseMotionEventRef;
};

}

#endif /*GAMESTATE_H_*/
